package com.hxd.otc.mvp.contract;

import android.support.annotation.NonNull;

import com.hxd.otc.base.BaseAdapter;
import com.hxd.otc.mvp.base.IBasePresenter;
import com.hxd.otc.mvp.base.IBaseView;

import java.util.List;

/**
 * Created by lzy on 2018/6/7 0007.
 * description ${列表Contract 基类}
 */
public interface BaseRecyclerContract {
    interface View<A extends BaseAdapter, T> extends IBaseView {

        void onLoadDataSuccess(boolean isRefresh, @NonNull List<T> data);

        void onLoadDataFail(boolean isRefresh, String msg);

        void onFinishLoad();

        /**
         * 设置是否可以架子啊更多
         *
         * @param enable
         */
        void setEnableLoadMore(boolean enable);

        /**
         * 配置当前页面是否支持加载更多
         */
        boolean isEnableLoadMore();

        /**
         * 配置当前页面是否支持刷新
         */
        boolean isEnableRefresh();

        /**
         * 配置当前页面是否支持首次进入自动刷新
         */
        boolean isAutoRefresh();
    }

    interface Presenter<T> extends IBasePresenter {
        void onRefresh();

        void onLoadMore();

        void loadData(boolean isRefresh);

        void onLoadDataSuccess(boolean isRefresh, @NonNull List<T> data);

        void onLoadDataFail(boolean isRefresh, String msg);
    }
}
